package com.ys.io.IO流.p4字节输入l流;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
/**
* 描述 :
*场景：使用read(byte[])一次读取多个字节，对上述程序进行优化
 *  * 步骤：
 *  *  1定义try with resource
 *  *  2定义字节输入流FileInputStream和字节输出流FileOutputStream
 *  *  3定义变量 byte[]data作为字节缓冲区，一次读取多个byte
 *  *  4定义变量int length 存储每次读取的有效字节
 *  *  5使用循环一次读取多个byte，当length等于-1停止读取
 *  *  6调用输出管道的write(byte,int,int)方法将读取的数据写入目的路径
*/
public class 拷贝文件01 {

    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        // 拷贝文件 字节输出流可以选择: 重命名, 和选择追加模式还是覆盖模式, false 默认时覆盖,true追加
        try (InputStream inputStream = new FileInputStream("day_22/a.txt"); OutputStream outputStream =new FileOutputStream("day_22/b.txt")) {

            int data ;
            int count = 0;
            while ((data=inputStream.read())!=-1){
                outputStream.write(data);
                count++;
            }
            outputStream.write("\r\n".getBytes());

            long end = System.currentTimeMillis();
            //4,800 字节大小 需要 耗时:253 毫秒 4800次
            System.out.println("耗时:"+(end-start)+"次数:"+count);

        }catch (Exception e){
            System.out.println("拷贝失败");
            e.printStackTrace();
        }
    }
}
